package com.mazaiting.rabbitmq.service;


import com.mazaiting.common.core.ex.exceptions.BaseException;
import com.mazaiting.rabbitmq.domain.info.MessageInfo;

/**
 * MQ 服务
 * 发送时向不带 DL 的 KEY 发送
 * @author mazaiting
 * @create_time 2022/3/28 15:49
 */
public interface IMqService {

//    /**
//     * 发送消息
//     * @param exchange 交换机
//     * @param routingKey 路由key
//     * @param messageId 消息 ID
//     * @param data 数据
//     * @param expiration 过期时间
//     */
//    void sendMessage(String exchange, String routingKey, String messageId, String data, int expiration) throws BaseException;

    /**
     * 发送消息
     * @param senderEntity MQ 发送实体数据
     */
    <T> void sendMessage(MessageInfo<T> senderEntity) throws BaseException;

//    /**
//     * 发送消息
//     * @param exchange 交换机
//     * @param routingKey 路由key
//     * @param message 消息
//     * @param correlationData 关联数据
//     */
//    void sendMessage(String exchange, String routingKey, Message message, CorrelationData correlationData);
}
